package com.ticket.dao;

import com.ticket.entity.*;
import com.ticket.util.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 全谢民
 * @version 8.0
 * @description: TODO 电影dao层
 * @date 2023/10/214:44
 */
public interface MovieDao {

    /**
     * @author 全谢民
     * @description TODO 前端首页电影根据电影评分降序
     * @date 2023/10/12 11:32
     * @return java.util.List<com.ticket.entity.HomePage>
     */
    List<HomePage> selHomeMovieList();


    /**
     * @author 全谢民
     * @description TODO 前端搜索页面查询电影
     * @date 2023/10/14 16:50
     * @param search 对象入参
     * @return java.util.List<com.ticket.entity.Search>
     */
    List<Search> selSearchMovieList(Search search);

    /**
     * @author 全谢民
     * @description TODO 查询用户收藏列表的电影收藏
     * @date 2023/10/9 19:43
     * @param userId       用户id
     * @return java.util.List<com.ticket.entity.MovieCollect>
     */
    List<MovieCollect> selMovieCollectList(@Param("userId") int userId);



    int selMovieCount (Page page);


/*    *//**
     * @author 全谢民
     * @description TODO 前端首页获取评分前1/2-7的电影
     * @date 2023/10/2 16:36
     * @param page
     * @return org.t69.auction.Page<com.ticket.entity.Movie>
     *//*
    List<Movie> selMovieList (Page page);

    *//**
     * @author 全谢民
     * @description TODO    电影分类查询
     * @date 2023/10/3 13:50
     * @param page
     * @return org.t69.auction.Page<com.ticket.entity.Movie>
     *//*
    Page<Movie> movieClassification (Page<Movie> page , Movie movieAddress);*/
    /**
     * @description TODO  后端电影分页查询
     * @author XuGuoZhi
     * @date 2023/10/13 18:34
      * @param moviePage
     * @param movieName
     * @return java.util.List<com.ticket.entity.Movie>
     */
    List<Movie> moviePageAndMovieNameSel(@Param("page") Page<Movie> moviePage,@Param("movieName") String movieName );
    /**
     * @description TODO 后端电影查询总条数
     * @author XuGuoZhi
     * @date 2023/10/13 18:43
      * @param movieName
     * @return int
     */
    int moviePageCountSel(@Param("movieName") String movieName);
    /**
     * @description TODO  影院后端电影分页查询
     * @author Lixin
     * @date 2023/10/14 18:34
     * @param moviePage
     * @return java.util.List<com.ticket.entity.Movie>
     */
    List<Movie> selMoviePageMovieName(@Param("page") Page<Movie> moviePage,@Param("movie") Movie movie);
    /**
     * @description TODO 影院后端电影查询总条数
     * @author Lixin
     * @date 2023/10/14 19:23
     * @return int
     */
    int selMoviePageCount(@Param("movie") Movie movie);
}
